package cn.luoshaocheng.basic.service;

import cn.luoshaocheng.basic.query.BaseQuery;
import cn.luoshaocheng.basic.util.PageList;
import org.springframework.transaction.annotation.Transactional;


import java.util.List;

public interface IBaseService<T> {
    //保存一个对象
    void save(T t);

    //移除一个对象


    @Transactional
//默认只读为false，默认传播机制为REQUIRED[有且仅有一个事务]
    void delete(Long id);

    //更新一个对象
    void update(T t);

    //加载一个对象
    T loadById(Long id);

    //加载所有对象
    List<T> loadAll();

    //分页查询
    PageList<T> queryPage(BaseQuery query);

    void patchDel(List<Long> ids);
}
